Resource provisioning platforms, such as cloud computing models, network architectures, servers, Internet of Things (IoT) systems, autonomous fleet management systems, distribution systems, sales models, etc., typically make available a set of resources to facilitate a solution for client nodes. Often such platforms will offer competing resources having similar capabilities. For example, in a cloud computing environment, there may be different memory offerings, different processor offerings, different security options, etc. Similarly, in an IoT environment, a resource platform may offer independently developed software agents that, e.g., control operations, manage network communications, etc. Because there may exist numerous competing resources within different categories of resources, it may be necessary for the system to select or bundle resources from different resource categories to simplify the number of possible solutions offered by the platform.
To maximize performance, a solution is thus required that can optimally select a manageable set of resource bundle options. However, because the number of potential bundles increases exponentially with the number of categories, the ability to optimally select and bundle resources to maximize the overall efficiency of the system can be challenging. Furthermore, resource provisioning platforms may be subject to inter-category and intra-category dependencies. For example, the demand of one bundle that selects a particular type of memory chips may be influenced by other bundles which use slightly different types of memory chips (i.e., intra-category dependencies). Similarly, offering a particular type of storage in one bundle may impact the provisioning of security solutions in other bundles (i.e., inter-category dependencies). Accordingly, efficiently bundling resources to achieve high performance remains a challenge.